Skip to content

feat(studio): embedded in promptwise, Studio looks like its own Timeline and takes its chat's files - #8

Merged
ernis2077 merged 4 commits into
mainfrom
claude/embedded-minimal
Nov 10, 2026
Merged

ernis2077 merged 4 commits into
mainfrom
claude/embedded-minimal

Conversation

@ernis2077

Copy link
Copy Markdown

What

Studio embedded in promptwise's Timeline tab looks and behaves like promptwise's own Timeline. Four commits:

1. The tab fit, back (reapplies #6, reverted in #7)

  • Embedded, Studio draws no header. The tab's toolbar sends Inspector and Export as promptwise:command, and Studio reports their state as promptwise:state.
  • Below a 1000px dock the layout is the preview over the timeline, with one side group shown when Inspector or a selection asks for it.
  • A film opens a second in, the stage is lighter, and the agent leads the empty Design panel.

2. The timeline looks like promptwise's

  • The toolbar starts with history, the tool, split and zoom. Snapping, ripple, meters, keyframes, beats and the thumbnail and selection zooms open with More.
  • Clips are flat blocks with no title band or shadow. A picture's name is a small chip, and a text layer shows its words in the interface's type on the tertiary surface. Effect badges show on the clip in hand.
  • A panel alone in its group has no tab to name it.
  • Audio clips keep Studio's fill, which their waveform is drawn for.

3. Dividers and the play button

  • The dock's dividers no longer light up in the accent colour. Under the pointer or while dragged they show promptwise's sidebar grip, the white pill with three lines.
  • The play and pause glyph had a white fill and vanished on the light surface. It is now promptwise's filled play and pause (Remix) in the button's ink.

4. Files dragged out of promptwise's chat land on the timeline

  • promptwise's chat drags its images and videos as a JSON list of URLs under application/x-bebra-asset. The timeline takes that drop: each file becomes a clip that plays from its own address, as a converted promptwise timeline's clips do, one after the other from the drop point.
  • A remote file's kind comes from its path, its length from its metadata, and a video lands audible, since the project's probe can't reach it. Anything that isn't an http(s) URL is ignored.

Why

In the tab, Studio sat under promptwise's toolbar with a header of its own, three columns that didn't fit, black clip blocks, an accent-coloured divider and a play button nobody could see. And the project's media could only get onto the timeline through Studio's own Assets panel.

Related work

Checked

  • bun run lint, Studio's tsc --noEmit and its whole test suite (8214 passed).
  • New tests: the embedded toolbar and its More button, a promptwise drop placed in order with a non-http URL ignored, and a remote file's kind and src.
  • By hand in the dev Studio inside a frame: the layout at the tab's width, the clips, the grip on both dividers, the play button, More, and a drop with promptwise's payload, which wrote a <video> with the file's full address and its probed length.

Not checked

  • A real mouse drag from promptwise's chat into the frame across origins. Browser automation can't start a native drag, so the drop was dispatched as an event inside the frame.
  • A dropped remote clip shows "waveform unavailable" on its audio lane.
  • Nothing ran in promptwise's sandbox or behind its Studio proxy.

🤖 Generated with Claude Code

ernis2077 and others added 4 commits November 11, 2026 03:26
…ise's own

On top of the reapplied tab fit (no second header, a compact dock):

- The timeline toolbar starts with history, the tool, split and zoom. Snapping,
  ripple, meters, keyframes, beats and the thumbnail and selection zooms open
  with More.
- Clips are flat blocks with no title band or shadow: the name is a small chip
  on pictures, and a text layer shows its words in the interface's type on the
  tertiary surface. Effect badges show on the clip in hand. Audio clips keep
  Studio's fill, which their waveform is drawn for.
- A panel alone in its group has no tab to name it.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…play button that shows

- The dock's dividers no longer light up in the accent colour. Under the
  pointer or while dragged they show promptwise's sidebar grip, the white pill
  with three lines, turned on its side between the preview and the timeline.
- The play and pause glyph had a white fill, which vanished on the light
  surface. It is now promptwise's own Timeline's filled play and pause in the
  button's ink, and the button's hover is the toolbar's.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…line

promptwise's chat drags its images, videos and sounds as a list of URLs under
its own type (application/x-bebra-asset). The timeline now takes that drop:
each file becomes a clip that plays from its own address, as the clips of a
converted promptwise timeline do, one after the other from the drop point.

A remote file's kind comes from its path, its length from loading its
metadata, and a video lands audible, since the project's probe can't reach it.
Its address is written as it is, with only the attribute's own characters
escaped. Anything that isn't an http(s) URL is ignored.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
@ernis2077
ernis2077 marked this pull request as ready for review November 10, 2026 22:16
@ernis2077
ernis2077 merged commit 06ddf74 into main Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant